﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;

using DotConferenceCore.GestionParticipant;
using DotConferenceCore.GestionArticle;
using DotConferenceSql;

namespace WebInterface
{
    public partial class RepartirSoumission : System.Web.UI.Page
    {
        public Organisateur unOrganisateur;

        protected void Page_Load(object sender, EventArgs e)
        {
            unOrganisateur = new Organisateur();
            unOrganisateur.NumeroParticipant = MesVariablesSessions.Instance.no_participant_logger;

            //On scan la bd et on rempli les 2 listbox.
            ListArticle.Items.Clear();
            ListEvaluateur.Items.Clear();

            RemplirArticle();
            RemplirEvaluateur();

        }

        protected void BtnSubmit_Click(object sender, EventArgs e)
        {
            
        }

        protected void BtnRetour_Click(object sender, EventArgs e)
        {
            Response.Redirect("MenuOrganisateur.aspx");
        }

        private void RemplirArticle()
        {

            if (!IsPostBack)
                ListArticle.Items.Clear();

            // Rempli le DropDown avec tout les articles
            using (var query = new DotConferenceSql.SqlQuery())
            {

                var selectPart = new DotConferenceSql.SelectQueryElement();


                selectPart.Add("ID_article");
                selectPart.Add("Sujet");

                query.Elements.Add(selectPart);
                query.Elements.Add(new DotConferenceSql.FromTableQueryElement("Article"));

                // Spécifie le type de participant pour avoir seulement les évaluateurs
                // TODO: Change la condition pour charger le bon type
                query.Elements.Add(new DotConferenceSql.CustomWhereStatement(string.Format("ID_Conference={0}", MesVariablesSessions.Instance.no_conference_active)));

                var selectCommand = query.BuildSqlCommand();

                try
                {
                    var dReader = selectCommand.ExecuteReader();

                    if (dReader != null)
                    {
                        while (dReader.Read())
                        {
                            var item = new ListItem(string.Format("{0} {1}", dReader["ID_article"], dReader["Sujet"]));
                            ListArticle.Items.Add(item);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Response.Write(ex.ToString());
                }


            }

        }
        private void RemplirEvaluateur()
        {

            if (!IsPostBack)
                ListEvaluateur.Items.Clear();

            // Rempli le DropDown avec tout les articles
            using (var query = new DotConferenceSql.SqlQuery())
            {

                var selectPart = new DotConferenceSql.SelectQueryElement();


                selectPart.Add("NumeroParticipant");
                selectPart.Add("Specialite");
                selectPart.Add("TypeParticipant");

                query.Elements.Add(selectPart);
                query.Elements.Add(new DotConferenceSql.FromTableQueryElement("Participant"));

                // Spécifie le type de participant pour avoir seulement les évaluateurs
                // TODO: Change la condition pour charger le bon type
                query.Elements.Add(new DotConferenceSql.CustomWhereStatement("TypeParticipant=2"));

                var selectCommand = query.BuildSqlCommand();

                try
                {
                    var dReader = selectCommand.ExecuteReader();

                    if (dReader != null)
                    {
                        while (dReader.Read())
                        {
                            var item = new ListItem(string.Format("{0} {1}", dReader["NumeroParticipant"], dReader["Specialite"]));
                            item.Value = string.Format("{0}", dReader["NumeroParticipant"]);
                            ListEvaluateur.Items.Add(item);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Response.Write(ex.ToString());
                }
            }
        }
    }
}
